The present invention relates to a method for generating specification information which generates specification information from software (program) and more particularly to a method for generating hierarchical specification information which extracts reusable specification information from already-developed software and generates hierarchical specification information so as to efficiently execute a development operation of new software, an analytical operation, and a maintenance operation for software.
A general software development procedure is to analyze various requests, decide a specification for a system and program, design the structure of system and program on the basis of the decided specification, and code it in a suitable language. Particularly when a large scale and new software is to be generated, the burden imposed on a system engineer or programmer is extremely severe. When there is a software available which is similar to a one to be newly developed, it may be considered to use it. However, for that purpose, it is necessary that a programmer correctly understands the contents of the existing software. Even when the programmer maintains (improving and modifying) the existing software itself, it is necessary that the programmer correctly understands the contents of the software. However, it is not easy generally that a programmer looks at a program itself and understands the contents thereof. To understand the contents of the software, it is necessary that the programmer refers to the specification for the software. However, a specification is not always attached to every software and even if a specification is attached to a software, it is not always ready for use so that a programmer can see it immediately. Therefore, by extracting specification information of already-developed software or by using a part of a source program as a program part and storing it in a data base or others so as to improve the productivity of software and improve the efficiency of a maintenance operation, reuse of it for development of new software or a method for using it for an analytical operation and a maintenance operation of already-developed software is considered.
Specification information of software is a series of information prescribing the function, structure, processing contents, and use method for the software and is represented by sentences and diagrams.
More concretely, specification information of software is a set of a definition of a data item and and a procedure (processing) for the data item.
As mentioned above, a method and a system for extracting specification information from already-developed software are indicated, for example, in "Reverse Engineering: Markets, Method and Tools, Rosemary R. Evans and KeithHales, Ovum Ltd., 1990".
Particularly, as a system for extracting data related information from definition information and file information of a data base, Bachman110n Re-engineering Product Set (Volume 2, p. 27 to 36 of the aforementioned reference) is commercialized. This is a system for extracting design information from various data base definitions and COBOL record definitions, extracting a data model indicating the relationship between data on the basis of the extracted design information, and reusing them for development of new software. Since relational information between data is extracted and reused by this prior art, the productivity of software is improved and the efficiency of operations of analyzing and maintaining data relations is improved.
A method for extracting "object oriented development specification information" having a data collection and a procedure for the data collection from already-developed software is also proposed.
A prior art relating to the aforementioned method is indicated in Japanese Patent Application Laid-Open No. 04-260925. By this method, it is possible to normalize data (conversion into data in the standard format), collect a related procedure for each normalized data, and obtain reusable specification information. Since this prior art integrates and extracts data and a data-related procedure, the productivity of software is improved.
In the former prior art for extracting a data model, an art for extracting a procedure referring to the data is not indicated. As to the data model to be extracted, only the inter-data relationship is represented by storing data (entity) and the relationship with the data but hierarchical classification indicating the derivative relation of data which is necessary to understand and reuse the data is not indicated. In the latter prior art for extracting object oriented development specification information, it is premised that a different data name has different data contents so as to normalize the data. However, there are many alias data in a conventional existing system, so that an operation for standardizing data names in the existing software beforehand is necessary. Furthermore, it is necessary to normalize data for the whole object system. Therefore, it is impossible to extract object oriented development specification information from some software in the object system and add object oriented development specification information which is newly extracted to existing object oriented development specification information, so that an operation necessary to understand and reuse data is extremely limited.